<?php

class CadastroEmpresaController {

    function CadastroEmpresaController() {
        $this->verificaFormCadastro();
    }

    function verificaFormCadastro() {
        if (!empty($_POST)) {
            if (!empty($_POST['formCadastroEmpresa'])) {
                $mensagem = $this->cadastraEmpresa();
                if ($mensagem == "SUCESSO") {
                    ?>
                    <script>
                        document.getElementById('lblInfoCadastro').innerHTML = "<div class='alert-block alert-success span12 text-center' id='lblInfoCadastro'><i class='icon-ok'></i> Cadastrado Com sucesso! <button type='button' class='close' data-dismiss='alert'>&times;</button></div>";
                    </script>    
                    <?

                } else {
                    ?>
                    <script>
                        document.getElementById('lblInfoCadastro').innerHTML = "<div class='alert-block alert-error span12 text-center' id='lblInfoCadastro'><i class='icon-remove'></i> Problema ao Cadastrar. <button type='button' class='close' data-dismiss='alert'>&times;</button></div>";
                    </script>    
                    <?

                }
            }
        }
    }

    function cadastraEmpresa() {
        require_once 'Model/Empresa.php';
        require_once 'DAO/DAOEmpresa.php';
        require_once 'DAO/DAOCidade.php';
        require_once 'DAO/DAOBairro.php';
        require_once 'DAO/DAOPais.php';
        require_once 'DAO/DAOEndereco.php';
        require_once 'Model/Cidade.php';
        require_once 'Model/Bairro.php';
        require_once 'Model/Pais.php';
        require_once 'Model/Endereco.php';
        require_once 'Model/Usuario.php';
        require_once 'DAO/DAOImagemEmpresa.php';
        require_once 'DAO/DAOLocal.php';
        require_once 'DAO/DAOCategoriaEmpresa.php';
        require_once 'DAO/DAOCategorias.php';
        require_once 'DAO/DAOConta.php';
        require_once 'Model/Categorias.php';
        $empresa = new Empresa();
        $empresa->setNome($_POST['edtNome']);
        $empresa->setCnpj($_POST['edtCnpj']);

        $de = new DAOEndereco();
        $endereco = $de->addEndereco(new Endereco(1, $_POST['edtEndereco']));
        $empresa->setEndereco($endereco);

        $empresa->setNumero($_POST['edtNumero']);

        $db = new DAOBairro();
        $bairro = $db->addBairro(new Bairro(0, $_POST['edtBairro']));
        $empresa->setBairro($bairro);

        $dc = new DAOCidade();
        $cidade = $dc->getCidade($_POST['edtCidade']);
        $empresa->setCidade($cidade);

        $empresa->setEmail($_POST['edtEmailEmpresa']);
        $empresa->setSenha($_POST['edtSenhaEmpresa']);

        $demp = new DAOEmpresa();

        $empresa = $demp->addEmpresa($empresa);
        if (is_a($empresa, 'Empresa')) {
            $DAOConta = new DAOConta();
            $plano = (is_numeric($_POST['edtPlano'])) ? $_POST['edtPlano'] : 30;
            $DAOConta->addConta(new Conta(0, $empresa), $plano);
            //Cadastro da Foto
            Upload::uploadImagem($_FILES['edtFoto'], "empresas/E$idEmpresa-" . time() . "-F", new DAOImagemEmpresa(), $empresa);
            
            //Cadastro do Local
            $l = new Local();
            $l->setEndereco($endereco);
            $l->setBairro($bairro);
            $l->setCidade($cidade);
            $l->setDescricao($_POST['edtNome']);
            $l->setNumero($_POST['edtNumero']);
            $dl = new DAOLocal();
            $dl->addLocal($l);
            //Cadastrando Categorias
            $dc = new DAOCategorias();
            foreach ($_POST['edtCategoria'] as $cat) {
                $categoria = new Categorias();
                $de = new DAOCategoriaEmpresa();
                $categoria->setEmpresa($empresa);
                $categoria->setCategoria($de->getCategoria($cat));
                $dc->addCategoriaDaEmpresa($categoria);
            }
            return "SUCESSO";
        } else {
            return "ERRO";
        }
    }

}
?>
